<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑运算符</title>
</head>
<body>
    
    <script>
        // 逻辑运算符包括：&&（与） || （或） ！（非）
        // &&(与)：是与运算符，表示并且，运算符前后都返回true，整个表达式返回true。
        // ||(或)：是或运算符，表示或者，运算符前后有一个返回true，整个表达式返回true。
        // !(非)：是非运算符，表示取反，表达式返回true，取反就是false，表达式返回false，取反就是true

        var a = true
        var b = false
        var c = true
        var s1 = a && b
        console.log('s1 '+ s1);
        var s2 = a && !b       // b 本来是false，!表示取反，就变成了true
        console.log(b);        // b 还是false，只是!b返回true
        console.log('s2 '+ s2);
        var s3 = a || b        // ||或者，一个条件返回true，整个表达式返回true
        console.log('s3 '+ s3);

        // 运算符的优先级
        // 比较运算符的优先级，高于逻辑运算符
        // 逻辑运算符的 && 优先级 高于 ||
        
        var a = 100
        var b = 50 
        var c = 100 
        var s4 = a>=c && b<a || a>b && c===a
        console.log('s4 '+ s4); // true
        var s5 = a>=c && (b<a || a>b) && c===b
        console.log('s5 '+ s5); // false
        var s6 = a-b > c && c+5<200 || b*2===100
        console.log('s6 '+ s6);

    </script>

</body>
</html>